package com.zhichat.infrastructure.constants;

public interface Constants {
    // 认证校验常量
    String TOKEN = "token";
    String AUTHORIZATION = "Authorization";
    String BEARER = "Bearer ";

    // 用户ID前缀
    String USER_ID_PREFIX = "zc_"; // 用户ID前缀
    // 文件前缀
    String APP_PREFIX = "zhichat_"; // app安装包前缀

    // 文件后缀
    String IMG_SUF_JPG = ".jpg"; // 头像图片后缀 - jpg (需要最小的文件大小，或者图像可以接受有损失的压缩)
    String IMG_SUF_PNG = ".png"; // 头像图片后缀 - png (不关心文件大小，或者需要图像的全部颜色信息)
    String APP_SUF_EXE = ".exe"; //app安装包前缀 - exe
    String COVER_SUF_JPG = "_cover.png"; // cover文件统一后缀

    // 文件后缀 - 图片
    String[] IMG_SUFFIX = {"jpg", "png", "jpeg", "bmp", "gif", "webp"};
    // 文件后缀 - 音乐
    String[] MUSIC_SUFFIX = {"mp3", "wav", "flac", "aac", "wma", "ogg"};
    // 文件后缀 - 视频
    String[] VIDEO_SUFFIX = {"mp4", "avi", "mov", "rmvb", "flv", "mkv", "wmv"};

    // 文件存储 - 包目录
    String GROUP_AVATAR_OSS_FOLDER = "groupAvatar"; // 群组头像
    String USER_AVATAR_OSS_FOLDER = "userAvatar"; // 用户头像
    String MSG_FILE_FOLDER = "msgFile"; // 聊天消息文件
    String APP_VERSION_FILE_FOLDER = "appVersion"; // APP版本文件

    // 联系人申请消息默认模板
    String CONTACT_APPLY_MESSAGE_TEMPLATE = "我是{}";

    // 分页默认查询数量
    Integer PAGE_SIZE = 10;

    // 1024
    Long NUM_1024 = 1024L;

    // 文件大小单位
    String FILE_SIZE_KB = "KB";
    String FILE_SIZE_MB = "MB";

    // redis key 失效时间（单位：秒）
    Integer TOKEN_EXPIRE_TIME = 60 * 60 * 24; // 24小时（redis-用户登录token、redis-用户所有联系人列表）
    Integer READER_IDLE_TIME = 60; // 1分钟（ws-读空闲事件、redis-用户心跳）

    // 未读消息查询时间限制
    Long UNREAD_MESSAGE_QUERY_TIME_LIMIT = 1000 * 60 * 60 * 24 * 90L; // 90天

    // 联系人申请 - 重复申请时间间隔
    Long CONTACT_APPLY_INTERVAL = 1000 * 60 * 60L; // 1小时
}
